[INFO] cloning repository https://github.com/Snowlabs/Jamyx
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Snowlabs/Jamyx" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSnowlabs%2FJamyx", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSnowlabs%2FJamyx'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e9f0b61dc84c709c6ee12e174d03ee208cf342e0
[INFO] checking Snowlabs/Jamyx against master#82310651b93a594a3fd69015e1562186a080d94c for pr-145770
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSnowlabs%2FJamyx" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Snowlabs/Jamyx
[INFO] finished tweaking git repo https://github.com/Snowlabs/Jamyx
[INFO] tweaked toml for git repo https://github.com/Snowlabs/Jamyx written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Snowlabs/Jamyx on toolchain 82310651b93a594a3fd69015e1562186a080d94c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Snowlabs/Jamyx already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded trackable_derive v0.1.1
[INFO] [stderr]   Downloaded trackable v0.2.20
[INFO] [stderr]   Downloaded quote v0.6.10
[INFO] [stderr]   Downloaded slog-term v2.4.0
[INFO] [stderr]   Downloaded cfg-if v0.1.6
[INFO] [stderr]   Downloaded build_const v0.2.1
[INFO] [stderr]   Downloaded atty v0.2.2
[INFO] [stderr]   Downloaded jack-sys v0.2.0
[INFO] [stderr]   Downloaded sloggers v0.3.1
[INFO] [stderr]   Downloaded dtoa v0.4.2
[INFO] [stderr]   Downloaded textwrap v0.8.0
[INFO] [stderr]   Downloaded term_size v0.3.0
[INFO] [stderr]   Downloaded libloading v0.4.1
[INFO] [stderr]   Downloaded slog v2.4.1
[INFO] [stderr]   Downloaded serde v1.0.14
[INFO] [stderr]   Downloaded byteorder v1.2.7
[INFO] [stderr]   Downloaded jack v0.6.0
[INFO] [stderr]   Downloaded libflate v0.1.18
[INFO] [stderr]   Downloaded syn v0.15.22
[INFO] [stderr]   Downloaded clap v2.26.2
[INFO] [stderr]   Downloaded serde_derive_internals v0.16.0
[INFO] [stderr]   Downloaded regex-syntax v0.6.3
[INFO] [stderr]   Downloaded libc v0.2.30
[INFO] [stderr]   Downloaded serde_derive v1.0.14
[INFO] [stderr]   Downloaded aho-corasick v0.6.9
[INFO] [stderr]   Downloaded ucd-util v0.1.3
[INFO] [stderr]   Downloaded crossbeam v0.2.10
[INFO] [stderr]   Downloaded term v0.5.1
[INFO] [stderr]   Downloaded proc-macro2 v0.4.24
[INFO] [stderr]   Downloaded unicode-width v0.1.4
[INFO] [stderr]   Downloaded vec_map v0.8.0
[INFO] [stderr]   Downloaded itoa v0.3.4
[INFO] [stderr]   Downloaded crc v1.8.1
[INFO] [stderr]   Downloaded slog-async v2.3.0
[INFO] [stderr]   Downloaded memchr v2.1.1
[INFO] [stderr]   Downloaded utf8-ranges v1.0.2
[INFO] [stderr]   Downloaded bitflags v1.0.4
[INFO] [stderr]   Downloaded slog-kvfilter v0.7.0
[INFO] [stderr]   Downloaded slog-scope v4.0.1
[INFO] [stderr]   Downloaded redox_syscall v0.1.31
[INFO] [stderr]   Downloaded slog-stdlog v3.0.2
[INFO] [stderr]   Downloaded take_mut v0.2.2
[INFO] [stderr]   Downloaded winapi v0.3.6
[INFO] [stderr]   Downloaded serde_json v1.0.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d09abbffff4d32a4d2aaa088ec932479810b4bf178c5dfca2f77822c85b27b05
[INFO] running `Command { std: "docker" "start" "-a" "d09abbffff4d32a4d2aaa088ec932479810b4bf178c5dfca2f77822c85b27b05", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d09abbffff4d32a4d2aaa088ec932479810b4bf178c5dfca2f77822c85b27b05", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d09abbffff4d32a4d2aaa088ec932479810b4bf178c5dfca2f77822c85b27b05", kill_on_drop: false }`
[INFO] [stdout] d09abbffff4d32a4d2aaa088ec932479810b4bf178c5dfca2f77822c85b27b05
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b6abd9a30529c934d8419dc0f9b6e4d89b7dc95498e777f94428ddf58e56230a
[INFO] running `Command { std: "docker" "start" "-a" "b6abd9a30529c934d8419dc0f9b6e4d89b7dc95498e777f94428ddf58e56230a", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking libc v0.2.30
[INFO] [stderr]     Checking lazy_static v0.2.8
[INFO] [stderr]    Compiling slog v2.4.1
[INFO] [stderr]     Checking num-traits v0.1.40
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]    Compiling proc-macro2 v0.4.24
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]     Checking cfg-if v0.1.6
[INFO] [stderr]     Checking unreachable v1.0.0
[INFO] [stderr]    Compiling unicode-xid v0.0.4
[INFO] [stderr]    Compiling build_const v0.2.1
[INFO] [stderr]     Checking thread_local v0.3.4
[INFO] [stderr]    Compiling synom v0.11.3
[INFO] [stderr]     Checking num-integer v0.1.35
[INFO] [stderr]    Compiling libloading v0.4.1
[INFO] [stderr]     Checking byteorder v1.2.7
[INFO] [stderr]     Checking ucd-util v0.1.3
[INFO] [stderr]    Compiling crc v1.8.1
[INFO] [stderr]    Compiling memchr v2.1.1
[INFO] [stderr]     Checking num-iter v0.1.34
[INFO] [stderr]    Compiling quote v0.3.15
[INFO] [stderr]    Compiling regex v1.0.2
[INFO] [stderr]     Checking regex-syntax v0.6.3
[INFO] [stderr]     Checking time v0.1.38
[INFO] [stderr]     Checking num v0.1.40
[INFO] [stderr]    Compiling syn v0.11.11
[INFO] [stderr]     Checking utf8-ranges v1.0.2
[INFO] [stderr]     Checking crossbeam v0.2.10
[INFO] [stderr]     Checking term v0.5.1
[INFO] [stderr]    Compiling quote v0.6.10
[INFO] [stderr]     Checking slog-scope v4.0.1
[INFO] [stderr]     Checking chrono v0.4.0
[INFO] [stderr]     Checking aho-corasick v0.6.9
[INFO] [stderr]    Compiling syn v0.15.22
[INFO] [stderr]     Checking term_size v0.3.0
[INFO] [stderr]     Checking isatty v0.1.3
[INFO] [stderr]     Checking log v0.3.8
[INFO] [stderr]     Checking adler32 v1.0.3
[INFO] [stderr]     Checking lazy_static v1.3.0
[INFO] [stderr]     Checking take_mut v0.2.2
[INFO] [stderr]     Checking serde v1.0.14
[INFO] [stderr]     Checking unicode-width v0.1.4
[INFO] [stderr]     Checking jack-sys v0.2.0
[INFO] [stderr]     Checking slog-async v2.3.0
[INFO] [stderr]     Checking textwrap v0.8.0
[INFO] [stderr]     Checking libflate v0.1.18
[INFO] [stderr]     Checking slog-stdlog v3.0.2
[INFO] [stderr]     Checking atty v0.2.2
[INFO] [stderr]     Checking dtoa v0.4.2
[INFO] [stderr]     Checking strsim v0.6.0
[INFO] [stderr]     Checking itoa v0.3.4
[INFO] [stderr]     Checking ansi_term v0.9.0
[INFO] [stderr]     Checking bitflags v0.9.1
[INFO] [stderr]     Checking bitflags v1.0.4
[INFO] [stderr]     Checking vec_map v0.8.0
[INFO] [stderr]     Checking jack v0.6.0
[INFO] [stderr]     Checking slog-term v2.4.0
[INFO] [stderr]     Checking clap v2.26.2
[INFO] [stderr]    Compiling serde_derive_internals v0.16.0
[INFO] [stderr]    Compiling serde_derive v1.0.14
[INFO] [stderr]    Compiling trackable_derive v0.1.1
[INFO] [stderr]     Checking trackable v0.2.20
[INFO] [stderr]     Checking slog-kvfilter v0.7.0
[INFO] [stderr]     Checking serde_json v1.0.3
[INFO] [stderr]     Checking sloggers v0.3.1
[INFO] [stderr]     Checking jam v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:197:40
[INFO] [stdout]     |
[INFO] [stdout] 197 |     fn connect_ports_by_name_if(&self, &bool, &str, &str) -> Result<(), j::Error>;
[INFO] [stdout]     |                                        ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &bool`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:197:47
[INFO] [stdout]     |
[INFO] [stdout] 197 |     fn connect_ports_by_name_if(&self, &bool, &str, &str) -> Result<(), j::Error>;
[INFO] [stdout]     |                                               ^^^^ help: try naming the parameter or explicitly ignoring it: `_: &str`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:197:53
[INFO] [stdout]     |
[INFO] [stdout] 197 |     fn connect_ports_by_name_if(&self, &bool, &str, &str) -> Result<(), j::Error>;
[INFO] [stdout]     |                                                     ^^^^ help: try naming the parameter or explicitly ignoring it: `_: &str`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:198:31
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn port_name_by_id(&self, j::PortId) -> Option<String>;
[INFO] [stdout]     |                               ^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: j::PortId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:325:21
[INFO] [stdout]     |
[INFO] [stdout] 325 |     thread_init(Box<Fn(&j::Client) + Send>),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 325 |     thread_init(Box<dyn Fn(&j::Client) + Send>),
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:326:18
[INFO] [stdout]     |
[INFO] [stdout] 326 |     shutdown(Box<Fn(j::ClientStatus, &str) + Send>),
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 326 |     shutdown(Box<dyn Fn(j::ClientStatus, &str) + Send>),
[INFO] [stdout]     |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:327:19
[INFO] [stdout]     |
[INFO] [stdout] 327 |     freewheel(Box<Fn(&j::Client, bool) + Send>),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 327 |     freewheel(Box<dyn Fn(&j::Client, bool) + Send>),
[INFO] [stdout]     |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:328:21
[INFO] [stdout]     |
[INFO] [stdout] 328 |     buffer_size(Box<Fn(&j::Client, j::Frames) -> j::Control + Send>),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 328 |     buffer_size(Box<dyn Fn(&j::Client, j::Frames) -> j::Control + Send>),
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:329:21
[INFO] [stdout]     |
[INFO] [stdout] 329 |     sample_rate(Box<Fn(&j::Client, j::Frames) -> j::Control + Send>),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 329 |     sample_rate(Box<dyn Fn(&j::Client, j::Frames) -> j::Control + Send>),
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:331:29
[INFO] [stdout]     |
[INFO] [stdout] 331 |     client_registration(Box<Fn(&j::Client, &str, bool) + Send>),
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 331 |     client_registration(Box<dyn Fn(&j::Client, &str, bool) + Send>),
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:332:27
[INFO] [stdout]     |
[INFO] [stdout] 332 |     port_registration(Box<Fn(&j::Client, j::PortId, bool) + Send>),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 332 |     port_registration(Box<dyn Fn(&j::Client, j::PortId, bool) + Send>),
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:333:21
[INFO] [stdout]     |
[INFO] [stdout] 333 |     port_rename(Box<Fn(&j::Client, j::PortId, &str, &str) -> j::Control + Send>),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 333 |     port_rename(Box<dyn Fn(&j::Client, j::PortId, &str, &str) -> j::Control + Send>),
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:334:25
[INFO] [stdout]     |
[INFO] [stdout] 334 |     ports_connected(Box<Fn(&j::Client, j::PortId, j::PortId, bool) + Send>),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 334 |     ports_connected(Box<dyn Fn(&j::Client, j::PortId, j::PortId, bool) + Send>),
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:336:23
[INFO] [stdout]     |
[INFO] [stdout] 336 |     graph_reorder(Box<Fn(&j::Client) -> j::Control + Send>),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 336 |     graph_reorder(Box<dyn Fn(&j::Client) -> j::Control + Send>),
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:337:14
[INFO] [stdout]     |
[INFO] [stdout] 337 |     xrun(Box<Fn(&j::Client) -> j::Control + Send>),
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 337 |     xrun(Box<dyn Fn(&j::Client) -> j::Control + Send>),
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:338:17
[INFO] [stdout]     |
[INFO] [stdout] 338 |     latency(Box<Fn(&j::Client, j::LatencyType) + Send>),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 338 |     latency(Box<dyn Fn(&j::Client, j::LatencyType) + Send>),
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:340:29
[INFO] [stdout]     |
[INFO] [stdout] 340 |     client_reconnection(Box<Fn() + Send>),
[INFO] [stdout]     |                             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 340 |     client_reconnection(Box<dyn Fn() + Send>),
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:341:17
[INFO] [stdout]     |
[INFO] [stdout] 341 |     process(Box<Fn(&j::Client, &j::ProcessScope) -> j::Control + Send>),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 341 |     process(Box<dyn Fn(&j::Client, &j::ProcessScope) -> j::Control + Send>),
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `log` is never read
[INFO] [stdout]   --> src/lib.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct Notifications {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 86 |     // TODO: use this logger!
[INFO] [stdout] 87 |     log: slog::Logger,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `log` is never read
[INFO] [stdout]    --> src/lib.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct Process {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 137 |     // TODO: use this logger!
[INFO] [stdout] 138 |     log: slog::Logger,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:197:40
[INFO] [stdout]     |
[INFO] [stdout] 197 |     fn connect_ports_by_name_if(&self, &bool, &str, &str) -> Result<(), j::Error>;
[INFO] [stdout]     |                                        ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &bool`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:197:47
[INFO] [stdout]     |
[INFO] [stdout] 197 |     fn connect_ports_by_name_if(&self, &bool, &str, &str) -> Result<(), j::Error>;
[INFO] [stdout]     |                                               ^^^^ help: try naming the parameter or explicitly ignoring it: `_: &str`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:197:53
[INFO] [stdout]     |
[INFO] [stdout] 197 |     fn connect_ports_by_name_if(&self, &bool, &str, &str) -> Result<(), j::Error>;
[INFO] [stdout]     |                                                     ^^^^ help: try naming the parameter or explicitly ignoring it: `_: &str`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/lib.rs:198:31
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn port_name_by_id(&self, j::PortId) -> Option<String>;
[INFO] [stdout]     |                               ^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: j::PortId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:325:21
[INFO] [stdout]     |
[INFO] [stdout] 325 |     thread_init(Box<Fn(&j::Client) + Send>),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 325 |     thread_init(Box<dyn Fn(&j::Client) + Send>),
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:326:18
[INFO] [stdout]     |
[INFO] [stdout] 326 |     shutdown(Box<Fn(j::ClientStatus, &str) + Send>),
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 326 |     shutdown(Box<dyn Fn(j::ClientStatus, &str) + Send>),
[INFO] [stdout]     |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:327:19
[INFO] [stdout]     |
[INFO] [stdout] 327 |     freewheel(Box<Fn(&j::Client, bool) + Send>),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 327 |     freewheel(Box<dyn Fn(&j::Client, bool) + Send>),
[INFO] [stdout]     |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:328:21
[INFO] [stdout]     |
[INFO] [stdout] 328 |     buffer_size(Box<Fn(&j::Client, j::Frames) -> j::Control + Send>),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 328 |     buffer_size(Box<dyn Fn(&j::Client, j::Frames) -> j::Control + Send>),
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:329:21
[INFO] [stdout]     |
[INFO] [stdout] 329 |     sample_rate(Box<Fn(&j::Client, j::Frames) -> j::Control + Send>),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 329 |     sample_rate(Box<dyn Fn(&j::Client, j::Frames) -> j::Control + Send>),
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:331:29
[INFO] [stdout]     |
[INFO] [stdout] 331 |     client_registration(Box<Fn(&j::Client, &str, bool) + Send>),
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 331 |     client_registration(Box<dyn Fn(&j::Client, &str, bool) + Send>),
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:332:27
[INFO] [stdout]     |
[INFO] [stdout] 332 |     port_registration(Box<Fn(&j::Client, j::PortId, bool) + Send>),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 332 |     port_registration(Box<dyn Fn(&j::Client, j::PortId, bool) + Send>),
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:333:21
[INFO] [stdout]     |
[INFO] [stdout] 333 |     port_rename(Box<Fn(&j::Client, j::PortId, &str, &str) -> j::Control + Send>),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 333 |     port_rename(Box<dyn Fn(&j::Client, j::PortId, &str, &str) -> j::Control + Send>),
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:334:25
[INFO] [stdout]     |
[INFO] [stdout] 334 |     ports_connected(Box<Fn(&j::Client, j::PortId, j::PortId, bool) + Send>),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 334 |     ports_connected(Box<dyn Fn(&j::Client, j::PortId, j::PortId, bool) + Send>),
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:336:23
[INFO] [stdout]     |
[INFO] [stdout] 336 |     graph_reorder(Box<Fn(&j::Client) -> j::Control + Send>),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 336 |     graph_reorder(Box<dyn Fn(&j::Client) -> j::Control + Send>),
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:337:14
[INFO] [stdout]     |
[INFO] [stdout] 337 |     xrun(Box<Fn(&j::Client) -> j::Control + Send>),
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 337 |     xrun(Box<dyn Fn(&j::Client) -> j::Control + Send>),
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:338:17
[INFO] [stdout]     |
[INFO] [stdout] 338 |     latency(Box<Fn(&j::Client, j::LatencyType) + Send>),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 338 |     latency(Box<dyn Fn(&j::Client, j::LatencyType) + Send>),
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:340:29
[INFO] [stdout]     |
[INFO] [stdout] 340 |     client_reconnection(Box<Fn() + Send>),
[INFO] [stdout]     |                             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 340 |     client_reconnection(Box<dyn Fn() + Send>),
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:341:17
[INFO] [stdout]     |
[INFO] [stdout] 341 |     process(Box<Fn(&j::Client, &j::ProcessScope) -> j::Control + Send>),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 341 |     process(Box<dyn Fn(&j::Client, &j::ProcessScope) -> j::Control + Send>),
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `log` is never read
[INFO] [stdout]   --> src/lib.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct Notifications {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 86 |     // TODO: use this logger!
[INFO] [stdout] 87 |     log: slog::Logger,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `log` is never read
[INFO] [stdout]    --> src/lib.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct Process {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 137 |     // TODO: use this logger!
[INFO] [stdout] 138 |     log: slog::Logger,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/jacon.rs:80:32
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn retry_if_fail_in(&self, u64, Signals, &Sender<Signals>)
[INFO] [stdout]    |                                ^^^ help: try naming the parameter or explicitly ignoring it: `_: u64`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/jacon.rs:80:37
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn retry_if_fail_in(&self, u64, Signals, &Sender<Signals>)
[INFO] [stdout]    |                                     ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Signals`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/jacon.rs:80:46
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn retry_if_fail_in(&self, u64, Signals, &Sender<Signals>)
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Sender<Signals>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]  --> src/utils.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn log_err(self, &slog::Logger) -> Self;
[INFO] [stdout]   |                      ^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &slog::Logger`
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]   = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]  --> src/utils.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn warn_err(self, &slog::Logger) -> Self;
[INFO] [stdout]   |                       ^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &slog::Logger`
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]   = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/utils.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn log_expect(self, &slog::Logger) -> T;
[INFO] [stdout]    |                         ^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &slog::Logger`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/utils.rs:39:27
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn connect(&mut self, bool, &str, &str);
[INFO] [stdout]    |                           ^^^^ help: try naming the parameter or explicitly ignoring it: `_: bool`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/utils.rs:39:33
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn connect(&mut self, bool, &str, &str);
[INFO] [stdout]    |                                 ^^^^ help: try naming the parameter or explicitly ignoring it: `_: &str`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/utils.rs:39:39
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn connect(&mut self, bool, &str, &str);
[INFO] [stdout]    |                                       ^^^^ help: try naming the parameter or explicitly ignoring it: `_: &str`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/utils.rs:40:28
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn is_connected(&self, &str, &str) -> bool;
[INFO] [stdout]    |                            ^^^^ help: try naming the parameter or explicitly ignoring it: `_: &str`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/utils.rs:40:34
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn is_connected(&self, &str, &str) -> bool;
[INFO] [stdout]    |                                  ^^^^ help: try naming the parameter or explicitly ignoring it: `_: &str`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/jacon.rs:80:32
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn retry_if_fail_in(&self, u64, Signals, &Sender<Signals>)
[INFO] [stdout]    |                                ^^^ help: try naming the parameter or explicitly ignoring it: `_: u64`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/jacon.rs:80:37
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn retry_if_fail_in(&self, u64, Signals, &Sender<Signals>)
[INFO] [stdout]    |                                     ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Signals`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/jacon.rs:80:46
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn retry_if_fail_in(&self, u64, Signals, &Sender<Signals>)
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Sender<Signals>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]  --> src/utils.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn log_err(self, &slog::Logger) -> Self;
[INFO] [stdout]   |                      ^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &slog::Logger`
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]   = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]  --> src/utils.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn warn_err(self, &slog::Logger) -> Self;
[INFO] [stdout]   |                       ^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &slog::Logger`
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]   = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/utils.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn log_expect(self, &slog::Logger) -> T;
[INFO] [stdout]    |                         ^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &slog::Logger`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/utils.rs:39:27
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn connect(&mut self, bool, &str, &str);
[INFO] [stdout]    |                           ^^^^ help: try naming the parameter or explicitly ignoring it: `_: bool`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/utils.rs:39:33
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn connect(&mut self, bool, &str, &str);
[INFO] [stdout]    |                                 ^^^^ help: try naming the parameter or explicitly ignoring it: `_: &str`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/utils.rs:39:39
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn connect(&mut self, bool, &str, &str);
[INFO] [stdout]    |                                       ^^^^ help: try naming the parameter or explicitly ignoring it: `_: &str`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/utils.rs:40:28
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn is_connected(&self, &str, &str) -> bool;
[INFO] [stdout]    |                            ^^^^ help: try naming the parameter or explicitly ignoring it: `_: &str`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/utils.rs:40:34
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn is_connected(&self, &str, &str) -> bool;
[INFO] [stdout]    |                                  ^^^^ help: try naming the parameter or explicitly ignoring it: `_: &str`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/config.rs:354:21
[INFO] [stdout]     |
[INFO] [stdout] 354 |                 why.description()
[INFO] [stdout]     |                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/config.rs:367:17
[INFO] [stdout]     |
[INFO] [stdout] 367 |             why.description()
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/server.rs:100:23
[INFO] [stdout]     |
[INFO] [stdout] 100 |                     e.description(),
[INFO] [stdout]     |                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/server.rs:105:40
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 let _ = stream.write(e.description().as_bytes());
[INFO] [stdout]     |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufRead`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::io::BufRead;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/config.rs:354:21
[INFO] [stdout]     |
[INFO] [stdout] 354 |                 why.description()
[INFO] [stdout]     |                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/config.rs:367:17
[INFO] [stdout]     |
[INFO] [stdout] 367 |             why.description()
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/jacon.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     JackError(j::Error),
[INFO] [stdout]    |     --------- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 37 -     JackError(j::Error),
[INFO] [stdout] 37 +     JackError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `warn_err` and `log_expect` are never used
[INFO] [stdout]   --> src/utils.rs:8:8
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub trait LogError<T> {
[INFO] [stdout]    |           -------- methods in this trait
[INFO] [stdout] 7  |     fn log_err(self, &slog::Logger) -> Self;
[INFO] [stdout] 8  |     fn warn_err(self, &slog::Logger) -> Self;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 9  |
[INFO] [stdout] 10 |     fn log_expect(self, &slog::Logger) -> T;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/config.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `PortConfig` is not local
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PortConfig`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/config.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]    |                     -^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `PortConfig` is not local
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PortConfig`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/config.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `MonitorConfig` is not local
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_MonitorConfig`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/config.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]    |                     -^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `MonitorConfig` is not local
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MonitorConfig`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/config.rs:61:10
[INFO] [stdout]    |
[INFO] [stdout] 61 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `MixerConfig` is not local
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_MixerConfig`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/config.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]    |                     -^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `MixerConfig` is not local
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MixerConfig`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/config.rs:338:10
[INFO] [stdout]     |
[INFO] [stdout] 338 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Config` is not local
[INFO] [stdout]     |          `Serialize` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Config`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/config.rs:338:21
[INFO] [stdout]     |
[INFO] [stdout] 338 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]     |                     -^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `Config` is not local
[INFO] [stdout]     |                     `Deserialize` is not local
[INFO] [stdout]     |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Config`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type
[INFO] [stdout]    --> src/jamyxer.rs:224:25
[INFO] [stdout]     |
[INFO] [stdout] 224 |                     name.clone().to_owned(),
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type
[INFO] [stdout]    --> src/jamyxer.rs:228:25
[INFO] [stdout]     |
[INFO] [stdout] 228 |                     name.clone().to_owned(),
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type
[INFO] [stdout]    --> src/jamyxer.rs:239:25
[INFO] [stdout]     |
[INFO] [stdout] 239 |                     name.clone().to_owned(),
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[derive(Serialize)]
[INFO] [stdout]    |          -^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Response` is not local
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Response`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Command` is not local
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Command`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |                     -^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Command` is not local
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Command`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/server.rs:100:23
[INFO] [stdout]     |
[INFO] [stdout] 100 |                     e.description(),
[INFO] [stdout]     |                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/server.rs:105:40
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 let _ = stream.write(e.description().as_bytes());
[INFO] [stdout]     |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufRead`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::io::BufRead;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/jacon.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     JackError(j::Error),
[INFO] [stdout]    |     --------- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 37 -     JackError(j::Error),
[INFO] [stdout] 37 +     JackError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `warn_err` and `log_expect` are never used
[INFO] [stdout]   --> src/utils.rs:8:8
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub trait LogError<T> {
[INFO] [stdout]    |           -------- methods in this trait
[INFO] [stdout] 7  |     fn log_err(self, &slog::Logger) -> Self;
[INFO] [stdout] 8  |     fn warn_err(self, &slog::Logger) -> Self;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 9  |
[INFO] [stdout] 10 |     fn log_expect(self, &slog::Logger) -> T;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/config.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `PortConfig` is not local
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PortConfig`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/config.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]    |                     -^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `PortConfig` is not local
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PortConfig`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/config.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `MonitorConfig` is not local
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_MonitorConfig`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/config.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]    |                     -^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `MonitorConfig` is not local
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MonitorConfig`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/config.rs:61:10
[INFO] [stdout]    |
[INFO] [stdout] 61 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `MixerConfig` is not local
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_MixerConfig`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/config.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]    |                     -^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `MixerConfig` is not local
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MixerConfig`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/config.rs:338:10
[INFO] [stdout]     |
[INFO] [stdout] 338 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Config` is not local
[INFO] [stdout]     |          `Serialize` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Config`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/config.rs:338:21
[INFO] [stdout]     |
[INFO] [stdout] 338 | #[derive(Serialize, Deserialize, Debug)]
[INFO] [stdout]     |                     -^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `Config` is not local
[INFO] [stdout]     |                     `Deserialize` is not local
[INFO] [stdout]     |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Config`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type
[INFO] [stdout]    --> src/jamyxer.rs:224:25
[INFO] [stdout]     |
[INFO] [stdout] 224 |                     name.clone().to_owned(),
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type
[INFO] [stdout]    --> src/jamyxer.rs:228:25
[INFO] [stdout]     |
[INFO] [stdout] 228 |                     name.clone().to_owned(),
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&std::string::String` instead of cloning the inner type
[INFO] [stdout]    --> src/jamyxer.rs:239:25
[INFO] [stdout]     |
[INFO] [stdout] 239 |                     name.clone().to_owned(),
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[derive(Serialize)]
[INFO] [stdout]    |          -^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Response` is not local
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Response`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Command` is not local
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Command`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/server.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |                     -^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Command` is not local
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Command`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.29s
[INFO] running `Command { std: "docker" "inspect" "b6abd9a30529c934d8419dc0f9b6e4d89b7dc95498e777f94428ddf58e56230a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b6abd9a30529c934d8419dc0f9b6e4d89b7dc95498e777f94428ddf58e56230a", kill_on_drop: false }`
[INFO] [stdout] b6abd9a30529c934d8419dc0f9b6e4d89b7dc95498e777f94428ddf58e56230a
